<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Evento_contacto_frm( $this );

	class Evento_contacto_frm extends Frm
	{
	function setValue ( $ncEvento, $ncContacto )
		{
			$cSql = "SELECT ncOrganizacion, ncPersona, ncNivelContacto, ncActividad
								FROM gtEventoContacto
								WHERE ncEvento = $ncEvento
									AND ncContacto = $ncContacto";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->aFields['Contacto']->aFields['ncOrganizacion']->setValue( $aRow['ncOrganizacion'] );
			$this->aFields['Contacto']->aFields['ncPersona']->setValue( $aRow['ncPersona'] );
			$this->aFields['ncNivelContacto']->setValue( $aRow['ncNivelContacto'] );
			$this->aFields['ncActividad']->setValue( $aRow['ncActividad'] );
			return $aRow;
		}
	function setLevel( $nLevel)
		{
			switch ( $nLevel )
			{
				case 2:
					$this->aFields['ncNivelContacto']->setDefault(2);
					$this->aInput = array( 'ncEvento', 'ncContacto', 'Contacto', 'ncNivelContacto' , 'ncActividad', 'aRotulo' );
				break;
				case 3:
					$this->aInput = array( 'ncEvento', 'cArchivo' );
				break;
			}
		}
	function initializeForm()
		{
			// Configura el Titulo
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && $this->aFields['ncEvento']->getValue() && $this->aFields['ncContacto']->getValue() )
				{
					$aRow = $this->setValue( $this->aFields['ncEvento']->getValue(), $this->aFields['ncContacto']->getValue() );
				}
			$this->aFields['Contacto']->setClassContainer( $this->getClassContainer );
			//$this->aFields['Contacto']->setUrlAutoRefresh( $this->getUrlAutoRefresh() );
			return true;
		}
	function Evento_contacto_frm( &$oModule )
		{
			$this->Frm( $oModule );
			
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncContacto']				= new Input( "Codigo", "ncContacto", '', false, true );
			$this->aFields['ncEvento']					= new InputList( "Evento", "ncEvento" );
			$this->aFields['ncNivelContacto']			= new InputList( "Nivel", "ncNivelContacto" );
			$this->aFields['ncActividad']				= new InputList( "Actividad", "ncActividad" );
			$this->aFields['ncEventoContacto']		= new InputLookUp( "Contacto", "ncEventoContacto" );
			$this->aFields['aRotulo']						= new InputCheck( "Tags", "aRotulo" );
			$this->aFields['cArchivo']						= new InputFile( "Archivo csv", "cArchivo", '', PATH_FILES );
			$this->aFields['cArchivo']->addValidType( 'text' );
			$this->aFields['cArchivo']->setForm( $this );
			$oModAdministracion =& loadModule( 'administracion' );
			$oModAdministracion->setSubModule('entidades' );
			$this->aFields['Contacto'] = $oModAdministracion->loadClass( 'organizacion_persona_frm' );
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'ncEventoContacto':
					$oField->setForm( $this );
					$cUrl = URL_ROOT . '?' . PARAM_REFRESH . '=class&amp;' . PARAM_MODULE . '=git&amp;' . PARAM_ACTION . '=' . BUSCAR_CONTACTOS . '&amp;' . PARAM_CLASS . '=evento_contacto_lst&amp;' . PARAM_METHOD . '=getData';
					$oField->setEditable ( $cUrl );
					break;
				case 'ncEvento':
					if ( $this->getOptionsLevel() != 2 )
					{
						$oField->setWidth(150);
						$cSql = "SELECT ncEvento, cdEvento FROM gtEvento  WHERE year(dDesde) > 2005 ORDER BY cdEvento";
						$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
					} else	$oField->setHidden();
				break;
				case 'ncNivelContacto':
						$cSql = "SELECT ncNivelContacto, cdNivelContacto FROM gcNivelContacto";
						$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
				break;
				case 'ncActividad':
						$cSql = "SELECT ncActividad, cdActividad FROM acActividad ORDER BY cdActividad";
						$oField->setMatrix( $this->oDatabase->getMatrix($cSql)  );
						$oModAdministracion =& loadModule('administracion');
						$oField->addActionArray( 2, $oModAdministracion->getActionArray(AGREGAR_UNA_ACTIVIDAD_A_UNA_ENTIDAD)  );
						$oField->addActionArray( 3, $oModAdministracion->getActionArray(MODIFICAR_UNA_ACTIVIDAD_A_UNA_ENTIDAD)  );
				break;
				case 'aRotulo':
					if ($this->aFields['ncContacto']->getValue()  )
					{
						$cSql = "SELECT Par.ncRotulo, Par.cdRotulo, Tab.ncContacto
											FROM gtRotuloContacto as Par
												LEFT JOIN gtContactoRotulo as Tab
													ON Par.ncRotulo = Tab.ncRotulo
													AND Tab.ncEvento = " . $this->aFields['ncEvento']->getValue()  . "
													AND Tab.ncContacto = " . $this->aFields['ncContacto']->getValue()  . "
											ORDER BY Par.cdRotulo";
					} else
					{
						$cSql = "SELECT ncRotulo, cdRotulo
											FROM gtRotuloContacto";
					}
					$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
					$oField->setMultiple( true );
				break;
				case 'Contacto':
					$oField->setOptions( DEFAULT_MAKE_FRM );
					if ( getParam('bAltaSimplificada') )
					{
						$oField->setOptionsLevel( 3);
						// Si el evento tiene una ubicacion la toma por default
						if ( $this->aFields['ncEvento']->getValue() )
						{
							$cSql = "SELECT ncPais, ncUbicacion FROM atEvento as Eve JOIN atDomicilio as Dom ON Dom.ncDomicilio = Eve.ncDomicilio WHERE Eve.ncEvento = " . $this->aFields['ncEvento']->getValue() ;
							list ($ncPais, $ncUbicacion) = $this->oDatabase->getArray($cSql );
							$oField->aFields['ncOrganizacion']->setParameter( "nTipoDomicilio=" . DOMICILIO_SUBURBANO . "&ncUbicacion=$ncPais|$ncUbicacion");
						}
					}
					$oField->setFormName( $this->getFormName() );
					$oField->setOptionsLevel(2);
					$oField->setOptionsType( 'N');
					$oField->aFields['ncOrganizacion']->setMandatory(false);
					//$oField->aFields['ncPersona']->setMandatory(false);
					$oField->aFields['ncOrganizacion']->cClassName = get_class( $this );
				break;
			}
		}
	}
?>